home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 7
/
FM Towns Free Software Collection 7.iso
/
ms_dos
/
console
/
console.pas
< prev
next >
Wrap
Pascal/Delphi Source File
|
1993-11-30
|
4KB
|
111 lines
program console;
(*
コンソールの速度を測るツール Programed by T.Suzuki 1993.6.21
*)
uses Dos;
var
h, m, s, hund ,time_1,time_2,time_3,time_4: Word;
d,seg_29,ofs_29:word;
start_time,end_time:longint;
i:integer;
n:byte;
fp:text;
p,pp:pointer;
procedure usage;
begin
writeln('usage : console [-f]');
writeln;
writeln(' コンソールの速さを計測します。');
writeln;
writeln(' -f : Int29hをフックして画面表示を止めて計測する');
end;
begin
if paramcount > 0 then if (pos('?',paramstr(1))>0) or
(pos('h',paramstr(1))>0) or (pos('H',paramstr(1))>0)
then begin usage;halt(0) end;
getintvec($29,p);
pp:=@p;
ofs_29:=memw[dseg:ofs(pp)-4]; {Int29hのベクタを保存}
seg_29:=memw[dseg:ofs(pp)-2];
d:=mem[seg_29:ofs_29];
if (pos('f',paramstr(1))>0) or (pos('F',paramstr(1))>0)
then mem[seg_29:ofs_29]:=$cf; {Int29hのコードの先頭にIRET}
GetTime(h,m,s,hund);
start_time:=h*3600 + m*60 + s;
for i:=1 to 2000 do writeln;
GetTime(h,m,s,hund);
end_time:=h*3600 + m*60 + s;
if start_time>end_time
then time_1:=24*3600-start_time+end_time
else time_1:= -start_time+end_time;
n:=1;
GetTime(h,m,s,hund);
start_time:=h*3600 + m*60 + s;
for i:=1 to 2000 do begin
writeln(copy('■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■'
,1,n shl 1));
inc(n);if n=40 then n:=1;
end;
GetTime(h,m,s,hund);
end_time:=h*3600 + m*60 + s;
if start_time>end_time
then time_2:=24*3600-start_time+end_time
else time_2:= -start_time+end_time;
GetTime(h,m,s,hund);
start_time:=h*3600 + m*60 + s;
for i:=1 to 2000 do writeln('■■■■■■■■■■■■■■■■■■■■');
GetTime(h,m,s,hund);
end_time:=h*3600 + m*60 + s;
if start_time>end_time
then time_3:=24*3600-start_time+end_time
else time_3:= -start_time+end_time;
GetTime(h,m,s,hund);
start_time:=h*3600 + m*60 + s;
for i:=1 to 2000 do writeln('■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■');
GetTime(h,m,s,hund);
end_time:=h*3600 + m*60 + s;
if start_time>end_time
then time_4:=24*3600-start_time+end_time
else time_4:= -start_time+end_time;
if (pos('f',paramstr(1))>0) or (pos('F',paramstr(1))>0)
then mem[seg_29:ofs_29]:=d; {Int29hを元に戻す}
writeln('2000行改行テスト : かかった時間・・・・',
time_1:7,'秒');
writeln('全角(1-39文字)×2000行改行テスト : かかった時間・・・・',
time_2:7,'秒');
writeln(' : スピード ・・・・',
8000/time_2*80:7:0,'bps');
writeln('全角20文字×2000行表示テスト : かかった時間・・・・',
time_3:7,'秒');
writeln(' : スピード ・・・・',
8000/time_3*80:7:0,'bps');
writeln('全角39文字×2000行表示テスト : かかった時間・・・・',
time_4:7,'秒');
writeln(' : スピード ・・・・',
8000/time_4*80:7:0,'bps');
assign(fp,'console.res');
rewrite(fp);
writeln(fp,'2000行改行テスト : かかった時間・・・・',
time_1:7,'秒');
writeln(fp,'全角(1-39文字)×2000行改行テスト : かかった時間・・・・',
time_2:7,'秒');
writeln(fp,' : スピード ・・・・',
8000/time_2*80:7:0,'bps');
writeln(fp,'全角20文字×2000行表示テスト : かかった時間・・・・',
time_3:7,'秒');
writeln(fp,' : スピード ・・・・',
8000/time_3*80:7:0,'bps');
writeln(fp,'全角39文字×2000行表示テスト : かかった時間・・・・',
time_4:7,'秒');
writeln(fp,' : スピード ・・・・',
8000/time_4*80:7:0,'bps');
close(fp);
end.